Resource allocation techniques for distributed computer systems with resource-consuming clients, such as virtual machines (VMs), are important to ensure that the clients are operating at desired or target levels. For example, if a VM is powered on a host computer or migrated to a host computer, a resource allocation element need to generate resource allocation settings of the VM such that appropriate resources can be assigned to the VM.
Conventional resource allocation techniques for powering on or migrating VMs in a host computer cluster involve taking a resource allocation snapshot of the entire host computer cluster, which is then used to generate resource allocation settings for the VMs being powered on or migrated. However, these conventional resource allocation techniques require that the resource allocation snapshot be operated on for each host computer involved in the powering on or migrating of the VMs in a serial fashion, which reduces the scalability of the resource allocation techniques.